﻿Imports Negocio
Public Class frmImpresionLargos

    Dim servicio As New DocumentoAlmacenDetalleNegocio

    Sub limpiar()
        txtPedido.Text = ""
        txtPedido.Focus()
    End Sub

    Sub mostraMensaje(ByVal men As String)
        MsgBox(men, MsgBoxStyle.Information, "Mensajes al Usuario")
    End Sub

    Sub impresion(datoRuta As String, datoMarca As String, datoBarra As String, nroPedido As String, _
                  datoDistrito As String, datoAgencia As String, datoPeso As String, datoCliente As String, datoDireccion As String, _
                  total As Integer, numeracion As Integer)
        Dim reporte As New crLargo
        reporte.SetParameterValue("@Ruta", datoRuta)
        reporte.SetParameterValue("@Marca", datoMarca)
        reporte.SetParameterValue("@BarraBulto", datoBarra)
        reporte.SetParameterValue("@nroPedido", nroPedido & " - L: " & numeracion & "/" & total)
        reporte.SetParameterValue("@Distrito", datoDistrito)
        reporte.SetParameterValue("@Agencia", datoAgencia)
        reporte.SetParameterValue("@PesoBruto", datoPeso)
        reporte.SetParameterValue("@Cliente", datoCliente)
        reporte.SetParameterValue("@Direccion", datoDireccion)

        reporte.PrintToPrinter(1, False, 0, 0)
    End Sub

    Sub mandarImprimir(ds As DataSet, total As Integer)
        For i = 0 To ds.Tables(0).Rows.Count - 1
            impresion(ds.Tables(0).Rows(i)("Ruta").ToString.Trim, ds.Tables(0).Rows(i)("CLI_Marca").ToString.Trim, ds.Tables(0).Rows(i)("Barra").ToString.Trim, txtPedido.Text.Trim, _
                      ds.Tables(0).Rows(i)("Agrupacion").ToString.Trim, ds.Tables(0).Rows(i)("AGE_Descripcion").ToString.Trim, ds.Tables(0).Rows(i)("PesoBruto").ToString.Trim, ds.Tables(0).Rows(i)("CLI_Descripcion").ToString.Trim, _
                      ds.Tables(0).Rows(i)("CLEN_Direccion").ToString.Trim, total, i + 1)
        Next
    End Sub

    Sub imprimir()
        If txtPedido.Text = "" Then
            mostraMensaje("Ingrese el código del pedido.")
            limpiar()
        Else
            Dim ds As DataSet = servicio.obtenerDatosImpresionLargos(txtPedido.Text.Trim, "P")
            If ds.Tables(0).Rows.Count = 0 Then
                mostraMensaje("Pedido no tiene largos para imprimir.")
                limpiar()
            Else
                Dim tot As Integer = ds.Tables(0).Rows.Count
                lblCantidad.Text = "Cantidad de Impresiones : " & tot
                If MsgBox("¿Está seguro de imprimir todos los largos?", MsgBoxStyle.Question + MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2, "Mensajes al Usuario") = MsgBoxResult.Yes Then
                    mandarImprimir(ds, tot)
                    mostraMensaje("Impresión completa.")
                    lblCantidad.Text = ""
                    limpiar()
                Else
                    lblCantidad.Text = ""
                    limpiar()
                End If
            End If
        End If
    End Sub

    Private Sub btnImprimir_Click(sender As System.Object, e As System.EventArgs) Handles btnImprimir.Click
        imprimir()
    End Sub

    Private Sub txtPedido_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtPedido.KeyPress
        If e.KeyChar = ChrW(Keys.Enter) Then
            imprimir()
        End If
    End Sub

End Class